/*
* leetcode 1567. 乘积为正数的最长子数组长度
* 
给你一个整数数组 nums ，请你求出乘积为正数的最长子数组的长度。
一个数组的子数组是由原数组中零个或者更多个连续数字组成的数组。
请你返回乘积为正数的最长子数组长度。

示例  1：
输入：nums = [1,-2,-3,4]
输出：4
解释：数组本身乘积就是正数，值为 24 。
* */
/*

* */
import java.util.*;

class Solution {
    public int getMaxLen(int[] nums) {
        int n=nums.length,max=0;
        int[] g=new int[n+1],f=new int[n+1];
        for(int i=1;i<=n;i++){
            if(nums[i-1]>0){
                f[i]=f[i-1]+1;
                g[i]=g[i-1]==0?0:g[i-1]+1;
            }else if(nums[i-1]<0){
                f[i]=g[i-1]==0?0:g[i-1]+1;
                g[i]=f[i-1]+1;
            }
            max=Math.max(max,f[i]);
        }
        return max;
    }
}